package entretenimiento.negocio;

import entretenimiento.dao.ResponsableFamiliaDAO;
import entretenimiento.excepcion.DAOExcepcion;
import entretenimiento.modelo.ResponsableFamilia;
import entretenimiento.negocio.GestionUsuario;

public class GestionResponsableFamilia extends GestionUsuario{

	public ResponsableFamilia insertar(String nombres, String paterno, String materno, int sexo,
									   int tipodocumento, String nudocumento, String direccion,
									   String celular, int estado, String email,
									   String contrasena)
		   throws DAOExcepcion {
		
		ValidarDatos(nombres, paterno, materno, sexo, tipodocumento, nudocumento, 
					 email, celular, direccion, contrasena);
		ValidarEmail(email);
		ValidarDocumento(tipodocumento,nudocumento);
		insertar(2, email, contrasena, 0);
		
		ResponsableFamiliaDAO dao = new ResponsableFamiliaDAO();
		ResponsableFamilia vo = new ResponsableFamilia();
		
		vo.setNombres(nombres);
		vo.setApepaterno(paterno);
		vo.setApematerno(materno);
		vo.setSexo(sexo);
		vo.setTipodocumento(tipodocumento);
		vo.setNudocumento(nudocumento);
		vo.setDireccion(direccion);
		vo.setCelular(celular);
		vo.setEstado(estado);

		return dao.insertar(vo);
	}
	
	public ResponsableFamilia actualizar(int codigo, String nombres,String paterno, String materno, int sexo, 
										 int tipodocumento, String nudocumento, String direccion, String celular, 
										 String email, String contrasena) throws DAOExcepcion {
		
		ResponsableFamiliaDAO dao = new ResponsableFamiliaDAO();
		ResponsableFamilia vo = new ResponsableFamilia();
		ValidarDatos(nombres, paterno, materno, sexo, tipodocumento, nudocumento, 
				     email, celular, direccion, contrasena);
		actualizar_responsable(obtener(codigo).getCodigousu(),email, contrasena);
		
		vo.setCodigores(codigo);
		vo.setNombres(nombres);
		vo.setApepaterno(paterno);
		vo.setApematerno(materno);
		vo.setSexo(sexo);
		vo.setTipodocumento(tipodocumento);
		vo.setNudocumento(nudocumento);
		vo.setDireccion(direccion);
		vo.setCelular(celular);

		return dao.actualizar(vo);
	}

	public void eliminar(int codigo) throws DAOExcepcion {
		ResponsableFamiliaDAO dao = new ResponsableFamiliaDAO();
		eliminar_usuario(obtener(codigo).getCodigousu());
		dao.eliminar(codigo);
	}
	
	public ResponsableFamilia obtener(int codigo) throws DAOExcepcion {
		ResponsableFamiliaDAO dao = new ResponsableFamiliaDAO();
		return dao.obtener(codigo);
	}

    public void ValidarEmail(String email) throws DAOExcepcion{
    	ResponsableFamiliaDAO dao = new ResponsableFamiliaDAO();
        dao.BuscarPorEmail(email);
    }
    
    public void ValidarDocumento(int tipodocumento, String nudocumento) throws DAOExcepcion{
    	ResponsableFamiliaDAO dao = new ResponsableFamiliaDAO();
    	dao.BuscarPorDocumento(tipodocumento, nudocumento);
    }
    public void ValidarDatos(String nombres, String paterno, String materno, int sexo,
		    				 int tipodocumento, String nudocumento, String email,
		    				 String celular, String direccion, String contrasena) throws DAOExcepcion{
    	ResponsableFamiliaDAO dao = new ResponsableFamiliaDAO();
    	dao.ValidarDatosIncompletos(nombres, paterno, materno, sexo, tipodocumento, nudocumento, email, celular, direccion, contrasena);
    }  
   
}
